﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SMS.dao;
using System.Windows.Forms;
using System.Data;

namespace SMS.cntr
{
    public class SemesterCntr
    {
        private static readonly SemesterCntr INSTANCE = new SemesterCntr();

        public static SemesterCntr Instance
        {
            get
            {
                return INSTANCE;
            }
        }

        private SemesterCntr() { }
		/// long
        public void insert(String name)
        {
            if (validateCreatingSemester(name) & checkduplicateName(name))
            {
                int result = SemesterDao.Instance.insert(name);

                if (result == 1)
                {
                    MessageBox.Show("Tạo học kỳ thành công");
                }
            }
        }

        public bool validateCreatingSemester(String name)
        {
            if (name.Equals(""))
            {
                MessageBox.Show("Cần phải điền tên học kỳ");
                return false;
            }

            return true;
        }

        public void update(String name, int id)
        {
            if (validateUpdateSemester(name) & checkduplicateName(name))
            {
                int result = SemesterDao.Instance.update(name, id);

                if (result == 1)
                {
                    MessageBox.Show(" Sửa tên học kỳ thành công");
                }
            }
        }

        public bool validateUpdateSemester(String name)
        {
            if (name.Equals(""))
            {
                MessageBox.Show("Không được để trống tên học kỳ");
                return false;
            }

            return true;
        }

		private bool checkduplicateName(string semesterName)
        {
            DataTable dt = SemesterDao.Instance.findsemesterName(semesterName);
            if (dt.Rows.Count == 1) { MessageBox.Show("Đã có học kỳ này. Xin tạo một học kỳ với tên khác !"); return false; }
            return true;
        }

        public void delete(int id)
        {
            int result = SemesterDao.Instance.delete(id);

            if (result == 1)
            {
                MessageBox.Show(" Xóa học kỳ thành công");
            }
            else
            {
                MessageBox.Show("Cần chọn 1 học kỳ để xóa ");
            }
        }

        public DataTable findAll()
        {
            return SemesterDao.Instance.findAll();
        }

        // end of long
    }
}
